package xml;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import bean.vo.ItemSolicitudCotizacionVO;
import bean.vo.SolicitudCotizacionVO;

public class SerializadorSolicitudCotizacion {
	
	public static SolicitudCotizacionVO deserializar(Node nodoSolicitud) throws Exception {
		if (nodoSolicitud.getNodeName() != Constantes.SOL_COTIZACION) {
			System.out.println(nodoSolicitud.getNodeName());
			throw new Exception("Error - nodo solicitud de cotizacion invalido");
		}
		
		SolicitudCotizacionVO solicitud = new SolicitudCotizacionVO();
		solicitud.setNumeroSolicitud(Integer.parseInt(XmlUtil.getAttributeValue(nodoSolicitud, Constantes.NUMERO)));
		solicitud.setFechaRecepcion((XmlUtil.dateFormat.parse(XmlUtil.getAttributeValue(nodoSolicitud, Constantes.AFECHA))));
		
		Node nodoCliente = XmlUtil.getChildNodeWithName(nodoSolicitud, Constantes.CLIENTE);
		solicitud.setCliente(SerializadorCliente.deserializar(nodoCliente));
		
		NodeList items = XmlUtil.getChildNodeWithName(nodoSolicitud, Constantes.RODAMIENTOS).getChildNodes();
		for (int i = 0; i < items.getLength(); i++) {
			Node nodoItem = items.item(i);
			if (nodoItem.getNodeName() == Constantes.ITEM) {
				ItemSolicitudCotizacionVO itemVo = SerializadorItemSolicitudCotizacion.deserializar(nodoItem);
				solicitud.agregarItem(itemVo);
			}
		}
		
		return solicitud;
	}
	
}
